// #include "nixie.h"


// void nixie_config(void)
// {
//     // GPIO时锟斤拷
//     rcu_periph_clock_enable(DI_RCU);
//     rcu_periph_clock_enable(RCK_RCU);
//     rcu_periph_clock_enable(SCK_RCU);
    
//     // 锟斤拷锟斤拷锟斤拷锟侥Ｊ�
//     gpio_mode_set(DI_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, DI_GPIO_PIN);
//     gpio_mode_set(RCK_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RCK_GPIO_PIN);
//     gpio_mode_set(SCK_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, SCK_GPIO_PIN);
//     gpio_output_options_set(DI_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, DI_GPIO_PIN);
//     gpio_output_options_set(RCK_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, RCK_GPIO_PIN);
//     gpio_output_options_set(SCK_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, SCK_GPIO_PIN);
    
//     // 2锟斤拷时锟斤拷默锟斤拷锟皆碉拷平锟斤拷锟斤拷
//     SCK(0);
//     RCK(0);
// }


// /* 锟街讹拷锟斤拷锟斤拷锟斤拷位锟脚猴拷 锟斤拷位时锟斤拷 */
// void shift_clk(void)
// {
//     SCK(1);         // 锟斤拷锟斤拷锟斤拷
//     NIXIE_DELAY();  // 锟皆碉拷一锟斤拷锟�
//     SCK(0);         // 确锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
// }


// /* 锟街讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟脚猴拷 锟斤拷锟斤拷时锟斤拷 */
// void lock_clk(void)
// {
//     RCK(1);         // 锟斤拷锟斤拷锟斤拷
//     NIXIE_DELAY();  // 锟皆碉拷一锟斤拷锟�
//     RCK(0);         // 确锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
// }


// void send_1bit(uint8_t bit)
// {
//     // 1. 准锟斤拷DI锟脚的凤拷锟斤拷锟斤拷锟斤拷 0 锟斤拷 1
//     DI(bit);
    
//     // 2. 锟脚猴拷准锟斤拷锟矫ｏ拷锟斤拷始锟斤拷位锟斤拷锟斤拷位锟脚号凤拷锟斤拷去锟斤拷锟侥达拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟絙it
//     shift_clk();
// }

// /* 
// hgfedcba 87654321
// 11111000 00001000
// */
// void send_data(uint16_t data)
// {   // 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷16bit锟斤拷锟捷ｏ拷锟斤拷锟�16锟斤拷1bit锟斤拷锟酵ｏ拷锟斤拷锟斤拷锟斤拷婕达拷锟�
//     uint8_t i;
//     for (i=0; i<16; i++)
//     {  
//         send_1bit(((data << i) & 0b1000000000000000)>0? 1 :0);
//     }
    
//     // 锟斤拷锟斤拷
//     lock_clk();
// }

// // num 锟斤拷示锟斤拷什么锟斤拷锟街ｏ拷 dp锟斤拷示锟斤拷要锟斤拷要锟斤拷锟斤拷dig锟斤拷锟侥革拷锟斤拷
// void display_single(uint8_t num, FlagStatus dp, uint8_t dig)
// {   
//     // 默锟斤拷 8锟斤拷锟狡癸拷(ABCDEFGH)锟斤拷8锟斤拷dig 锟斤拷(锟斤拷锟斤拷锟斤拷)
//     // dp g f e d c b a dig8 dig7 dig6 dig5 dig4 dig3 dig2 dig1
//     uint16_t data = 0b1111111100000000;
//     if (dp)
//     {   // 锟斤拷示小锟斤拷锟姐，锟斤拷锟轿伙拷锟�0
//         // 1<<15 ==> 1000 0000 0000 0000
//         // ~(1<<15)=>0111 1111 1111 1111
//         // data &= ~(1<<x)  锟斤拷data锟斤拷x位锟斤拷锟斤拷0
//         // data |= 1<<x     锟斤拷data锟斤拷x位锟斤拷锟斤拷1
//         data &= ~(1<<15);
//     }
    
//     // 锟斤拷锟侥革拷锟斤拷
//     data |= (1<<(dig-1));
    
//     /*
//     hgfedcba 87654321
//     11111111 00000000
//     data &= ~(1<<8)
//     */
//     switch(num)
//     {
//         case 0: // abcdef
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             data &= SET_E_0;
//             data &= SET_F_0;
//             break;
//         case 1: // bc
//             data &= SET_B_0;
//             data &= SET_C_0;
//             break;
//         case 2: // abged
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_G_0;
//             data &= SET_E_0;
//             data &= SET_D_0;
//             break;
//         case 3: // abgcd
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_G_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             break;
//         case 4: // fgbc
//             data &= SET_F_0;
//             data &= SET_G_0;
//             data &= SET_B_0;
//             data &= SET_C_0;
//             break;
//         case 5: // afgcd
//             data &= SET_A_0;
//             data &= SET_F_0;
//             data &= SET_G_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             break;
//         case 6: // afgcde
//             data &= SET_A_0;
//             data &= SET_F_0;
//             data &= SET_G_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             data &= SET_E_0;
//             break;
//         case 7: // abc
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_C_0;
//             break;
//         case 8: // abcdefg
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             data &= SET_E_0;
//             data &= SET_F_0;
//             data &= SET_G_0;
//             break;
//         case 9: // abcdfg
//             data &= SET_A_0;
//             data &= SET_B_0;
//             data &= SET_C_0;
//             data &= SET_D_0;
//             data &= SET_F_0;
//             data &= SET_G_0;
//             break;
//         case 10: // 锟斤拷示-  g
//             data &= SET_G_0;
//             break;
//     }
    
//     send_data(data);
// }



// void display(uint8_t * arr, FlagStatus * dps)
// {   
//     uint8_t i;
//     for(i=0; i<8; i++)
//     {
//         display_single(arr[i], dps[i], i+1);
//     }
// }




























